package com.michael.demos.base.java.serializable;

import java.io.Serializable;

/**
 * 类功能描述:
 * <pre>
 *   序列化测试实体
 *   	如果不显示指定serialVersionUID：
 *   		JVM在序列化时会根据属性自动生成一个serialVersionUID, 然后与属性一起序列化, 再进行持久化或网络传输.
 *   		在反序列化时, JVM会再根据属性自动生成一个新版serialVersionUID.
 *   		然后将这个新版serialVersionUID与序列化时生成的旧版serialVersionUID进行比较, 如果相同则反序列化成功, 否则报错.
 *
 *   结论: 实现Serializable接口还要显示指定serialVersionUID的值
 * </pre>
 *
 * @author Michael
 * @version 1.0
 * @date 2020/8/18 10:22
 */
public class User implements Serializable {

	private static final long serialVersionUID = 1L;

	private String name;
	private Integer age;
	private String gender;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	@Override
	public String toString() {
		return "User{" +
				"name='" + name + '\'' +
				", age=" + age +
				", gender='" + gender + '\'' +
				'}';
	}
}
